(1) Field of the Invention
The present invention relates to a data input/output control apparatus for controlling the input/output of data to simultaneously provide a plurality of users with multiple information and a method of accessing storage devices. More particularly, the present invention relates to a data input/output control apparatus, in which multiple information to be supplied to users is stored in a distributed fashion in a plurality of storage devices, and to an access method for accessing storage devices storing multiple information in a distributed manner.
(2) Description of the Related Art
In the recent multimedia market, text data, sound data and still image data are extensively communicated in two ways such as via personal computer communications and the Internet. For the future, there is a strong demand for exchange of even larger amounts of data such as dynamic picture images. Once the exchange of dynamic picture images becomes available, then such could presumably be applied to a variety of fields such as VOD (Video-On-Demand), telemarketing, telecommunication "karaoke" service, and role-playing games. In the case of providing users with dynamic picture images in such fields of application, dynamic picture data collected at one location (e.g., a video server in the VOD application) is transmitted to a plurality of users. Therefore, it is necessary that the server side, from which dynamic picture data is transmitted, should read dynamic picture data efficiently from storage devices.
Conventionally, a data access technique called striping is used to enhance the storage-accessing efficiency. According to this technique, a plurality of magnetic disk drives are connected to a data input/output control apparatus via one bus. A sequence of data (e.g., dynamic picture data) to be supplied to users is divided into a plurality of unit data of a predetermined length. These units of data are stored in a distributed fashion the multiple magnetic disk drives in predetermined order. The data input/output control apparatus accesses the multiple magnetic disk drives in the predetermined order.
An access demand from a user is complied with in the order of data storage in the storage devices. Consequently, the user can acquire a sequence of data in the predetermined order and can refer to the contents of sequential data such as dynamic picture data.
In order for a user to be supplied with information stored in the storage devices, it is necessary that an access time slot be allocated to the user. In the following description, the access time slot is merely referred to as a "slot." The slot is a time zone equivalent to one cycle during which the individual storage devices read or write data. A fixed number is predefined for the slots, and the slots are assigned respective slot numbers in order of operations to be performed with respect to the time zones during which the storage devices perform data read operations etc. If the predefined number of slots is 8, then the slot numbers allocated are 0 through 7. Namely, the time zones during which the multiple storage devices read or write data are grouped according to the slot numbers in order of access. The user who has been allocated a slot number from the server can access the storage devices by means of the slots with the allocated slot number.
To permit each slot number to be distributed to all storage devices, the number of slots and the number of storage devices must be prime with respect to each other. This is because, if the number of slots and the number of storage devices have a common divisor other than 1, slots with the same slot number are confined to a certain storage device, thus making it impossible to access the other storage devices. Consider the case where the number of storage devices and the number of slots are respectively 5 and 10 ("5" also is a common divisor), for example. If a slot with the slot number "0" is associated with a first storage device, then the slot number "0" is given next time to the same first storage device. Thus, the user who uses slots with the slot number "0" cannot acquire information stored distributedly in all storage devices. That is, only in the case where the number of slots and the number of storage devices are prime with respect to each other, the user can acquire a sequence of information from all storage devices in the predetermined order.
Also, since the data input/output control apparatus and the multiple storage devices are connected via one bus, data transfer between the data input/output control apparatus and the storage devices must be carried out by dividing time for the respective storage devices. If all the processes to be performed are data read operations, then the time of occupation of the bus can be allocated equally to the individual storage devices. However, since the bus occupation timing differs between a read operation and a write operation, if the process to be performed includes both read and write operations, they cannot be carried out in accordance with the same timing.
FIG. 11 is a diagram illustrating the read and write timings of a storage device. In a read slot 101, a read request is first received via the bus. In accordance with the read request, the storage device reads out data, and then transfers the read data via the bus. In a write slot 102, on the other hand, a write request is first received via the bus, then data to be written is received via the bus, and the data is written.
Thus, in the read slot, the data transfer is started upon lapse of a predetermined time after the reception of the read request, while in the write slot, the data transfer is carried out immediately after the write request is received. This difference of data transfer timing affects the efficiency of data transfer on the bus when a write request has occurred.
The following explains an access status wherein all the processes to be performed are data read operations, and an access status wherein the processes to be performed include both write and read operations. In the following, it is assumed that the number of storage devices and the number of slots are respectively 5 and 8, by way of example.
FIG. 12 is a diagram showing an access status wherein all the slots are used for read operations. In FIG. 12, the access status is indicated by the array of slots. FIG. 12 shows, from the top downward, the access status of a first disk drive, the access status of a second disk drive, the access status of a third disk drive, the access status of a fourth disk drive, the access status of a fifth disk drive, and data on the bus. The horizontal axis in FIG. 12 indicates time elapsed.
As illustrated, the times at which the disk drives start read operations in their respective slots are slightly shifted from one another. Thereby the read request and the transfer data are alternately transmitted through the bus, making it possible to fetch data sequentially from the disk drives.
If two slots 111 and 112 in FIG. 12 are used for write operations, a time period for transferring data to be written must be reserved immediately following each write request. Therefore, the operations of the same disk drives in the slots 113 and 114 immediately preceding the slots 111 and 112, respectively, are canceled.
FIG. 13 is a diagram showing an access status wherein both write and read operations are performed. As illustrated in FIG. 13, slots 111a and 112a for write operation use time zones 111b and 112b, respectively, which correspond to the data transfer time zones of the slots 113 and 114 in FIG. 12, to transfer data. Thus, a write operation is executed by canceling the read operations in other slots.
According to the conventional technique, however, there is a possibility that every slot will be affected by the write operations in other slots. Therefore, a problem arises in that even a slot which is transferring data of great importance can unavoidably be adversely affected by the write operations in other slots transferring less important data.
FIG. 14 is a diagram showing the dependence of the individual slots according to the conventional access technique. FIG. 14 illustrates the case where the number of disk drives and the number of slots are 5 and 8, respectively. In FIG. 14, the numerals inside the rectangular slot time zones represent the slot numbers of the respective slots, and mutually dependent slots are enclosed by a thick line.
As seen from FIG. 14, the slot "0" affects the slot "3", the slot "1" affects the slot "4", the slot "2" affects the slot "5", the slot "3" affects the slot "6", the slot "4" affects the slot "7", the slot "5" affects the slot "0", the slot "6" affects the slot "1", and the slot "7" affects the slot "2". Owing to this dependence relationship, all slots are influenced by one another. The dependence relationship can be expressed in the form of a ring, which is hereinafter referred to as a "dependence ring."
In the example shown in FIG. 14, the slots form a dependence ring 121 of which the direction of dependence is counterclockwise, that is, "0-3-6-1-4-7-2-5-(0)". If a write operation is performed in a slot, the slot adjacent thereto in the counterclockwise direction of the dependence ring 121 is affected. Accordingly, the influence of one slot upon another is unavoidable, and moreover, it is impossible to specify which slot is more likely to be adversely affected.